home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / xlib / pcx2csrc / pcx.h < prev    next >
C/C++ Source or Header  |  1994-07-09  |  2KB  |  57 lines

  1. #define NO_ERROR 0
  2. #define FILE_NOT_OPENED 1
  3. #define INSUFFICIENT_MEMORY 2
  4. #define TOO_MANY_ARGUMENTS 3
  5.  
  6. struct pcx_header {
  7.   char manufacturer;    // Always set to 0
  8.   char version;         // Always 5 for 256-color files
  9.   char encoding;        // Always set to 1
  10.   char bits_per_pixel;  // Should be 8 for 256-color files
  11.   int  xmin,ymin;       // Coordinates for top left corner
  12.   int  xmax,ymax;       // Width and height of image
  13.   int  hres;            // Horizontal resolution of image
  14.   int  vres;            // Vertical resolution of image
  15.   char palette16[48];   // EGA palette; not used for
  16.             //  256-color files
  17.   char reserved;        // Reserved for future use
  18.   char color_planes;    // Color planes
  19.   int  bytes_per_line;  // Number of bytes in 1 line of
  20.             //  pixels
  21.   int  palette_type;    // Should be 2 for color palette
  22.   char filler[58];      // Nothing but junk
  23. };
  24.  
  25.  
  26. struct pcx_struct {
  27.   pcx_header header;    // Structure for holding the PCX
  28.             //  header
  29.   unsigned char far *image; // Pointer to a buffer holding
  30.                 //  the 64000-byte bitmap
  31.   unsigned char far *cimage; // Point to a buffer holding
  32.                  //  a compressed version of
  33.                  //  the PCX bitmap
  34.   unsigned char palette[3*256]; // Array holding the 768-
  35.                 //  byte palette
  36.   int clength;  // Length of the compressed bitmap
  37. };
  38.  
  39. class Pcx
  40. // Class for loading 256-color VGA PCX files
  41. {
  42.   private:
  43.   // Private functions and variables for class Pcx
  44.     int infile;  // File handle for PCX file to be loaded
  45.     // Bitmap loading function:
  46.     int load_image(int pcxfile,pcx_struct *pcx);
  47.     // Palette loading function:
  48.     void load_palette(int pcxfile,pcx_struct *pcx);
  49.   public:
  50.   // Public functions and variables ror class Pcx
  51.     // Function to load PCX data:
  52.     int load(char far *filename,pcx_struct *pcx);
  53.     // Function to compress PCX bitmap
  54.     int compress(pcx_struct *pcx);
  55. };
  56.  
  57.